package com.sugon.service;

import com.sugon.entity.DevRepairRecordEntity;
import com.sugon.entity.dto.DevRepairTicketExportParam;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * 维修记录Service接口
 *
 * @author YuXD
 * @date 2023-05-20
 */
public interface DevRepairRecordService extends IBaseService {

    /**
     * 查看指定设备的维修记录列表
     *
     * @param devId
     * @return
     */
    List<DevRepairRecordEntity> queryListByDevId(String devId);

    /**
     * 分页查询
     *
     * @param map 参数
     * @return list
     */
    List<DevRepairRecordEntity> queryList(Map<String, Object> map);

    /**
     * 分页统计总数
     *
     * @param map 参数
     * @return 总数
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 查询维修记录详情
     *
     * @param id
     * @return
     */
    DevRepairRecordEntity queryObject(String id);

    /**
     * 根据维修单号获取维修记录详情
     *
     * @param repairCode
     * @return
     */
    DevRepairRecordEntity queryObjectByRepairCode(String repairCode);

    /**
     * 保存实体
     *
     * @param repairRecord 维修记录信息
     * @return 保存条数
     */
    boolean save(DevRepairRecordEntity repairRecord);

    /**
     * 根据主键更新实体
     *
     * @param repairRecord 维修记录信息
     * @return 更新条数
     */
    boolean update(DevRepairRecordEntity repairRecord);

    /**
     * 根据主键批量删除
     *
     * @param ids
     * @return 删除条数
     */
    int deleteBatch(String[] ids);

    /**
     * 准备导出设备维修工单数据
     *
     * @param params
     * @return
     */
    List<DevRepairTicketExportParam> prepareExportData(Map<String, Object> params);

    /**
     * 从输入流中导入Excel
     *
     * @param excelInputStream excel输入流
     * @return 返回成功导入的行数
     */
    int importExcelFromStream(InputStream excelInputStream) throws Exception;

}
